The present disclosure relates to a method and system that recommends a cloud configuration for deploying a cloud-based software service. More specifically, in response to a service request, the system searches a database for a cloud configuration based on previous cloud configurations for similar services.
An optimal cloud configuration, i.e., a combination of virtual machines (VMs), is desired by cloud users that want to deploy a software application into a cloud infrastructure. FIG. 1 shows a conventional approach for identifying a cloud configuration. Before the cloud user purchases the virtual machines that enable required performance of its service, it requests a cloud configuration from cloud providers at S10. Using cloud user preferences, available infrastructure is searched for the best cloud configuration at S12. The search from available infrastructure can be complicated when a large number of resource combinations are considered. The search space increases exponentially, based on the size of the infrastructure, to consider the different combinations as a cloud configuration. A cloud configuration recommendation is made based on the search from the infrastructure at S14. If the cloud user likes the recommendation, it can choose to deploy its service at S16.
There is currently no approach for scaling the cloud configuration search. Previous approaches focus on creating ontologies of cloud services. These ontologies deduce similarity of cloud services based on service types, functional attributes and system requirements. However, different service types may use the same cloud configurations based on resource usage behavior pattern and non-functional requirements, such as performance and cost. These service types may not consider the amount of resources being used by the service when it is hosted on the cloud. Although the requirements of different services are similar, the resource usage patterns of the services may be different.
In these instances, a different cloud configuration is desired which pertains to the non-functional preferences. A simplified approach for requesting and deploying services is further desired for cloud (e.g., small and medium business) users. An approach is desired that considers the service behavior in terms of the service's resource usage pattern for deducing service similarity using existing classification methods
A recommendation service is desired through which cloud users can request services based on preferences regarding high-level service parameters (e.g. load, required performance, budget, etc.). A recommendation service is desired that can provide suggestions on the cloud configuration (e.g. number and type of VMs, platform, software, etc.) that can meet the requested preferences. And a recommendation service is desired that compares cost and performance offerings from multiple cloud vendors.